#include <iostream>
#include <vector>
#include <list>
#include <algorithm>
//#include "Stack.hpp"
//#include "Queue.hpp"
#include "Priority_queue.hpp"
using namespace std;

//void Test1(){
//  int arr[] = {1, 2, 3, 4, 5};
//  Stack<int, vector<int>> st(arr, arr+5);
//  while(!st.empty())
//  {
//    cout << st.top() << " ";
//    st.pop();
//  }
//  cout << endl;
//}
//
//void Test2(){
//  int arr[] = {1, 2, 3, 4, 5};
//  Queue<int, list<int>> st(arr, arr+5);
//  while(!st.empty())
//  {
//    cout << st.front() << " ";
//    st.pop();
//  }
//  cout << endl;
//}

void Test3(){
  int arr[] = {1,5,5,3,5,4,6,7,6,7,9};
  //Priority_queue<int> heap(arr, arr+11);
  Priority_queue<int, vector<int>, Less<int>> heap(arr, arr+11);
  while(!heap.empty())
  {
    cout << heap.top() << " ";
    heap.pop();
  }
  cout << endl;
}

bool ls(const int &l, const int &r){
  return l<r;
}

bool gt(const int &l, const int &r){
  return l>r;
}

void Test4(){
  int arr[] = {1,5,5,3,5,4,6,7,6,7,9};
  vector<int> vc(arr, arr+11);
  sort(vc.begin(), vc.end(), gt);
  for(int e:vc)
  {
    cout << e << " ";
  }
  cout << endl;
}

int main()
{
  Test4();
  return 0;
}
